package com.fulllife.food.service;

import com.fulllife.food.entity.FoodEntity;
import com.fulllife.food.entity.MenuEntity;
import com.fulllife.food.foodstrategy.Analyse;
import com.fulllife.food.foodstrategy.FoodStrategy;
import com.fulllife.food.foodstrategy.RangeMenu;
import org.hswebframework.web.crud.service.ReactiveCrudService;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public interface FoodService extends ReactiveCrudService<FoodEntity, String> {

    /**
     * 分析，缺少什么
     * @param foodStrategy
     * @return
     */
    Mono<Analyse> analyze(FoodStrategy foodStrategy);

    /**
     * 建议，吃什么
     * @param foodStrategy
     * @return
     */
    Flux<FoodEntity> suggestion(FoodStrategy foodStrategy);

    /**
     * 随缘：一个大荤，一个小荤，一个素菜
     * @return
     */
    Flux<MenuEntity> range();

    /**
     * 随缘一整天：早中晚
     * @return
     */
    Mono<RangeMenu> rangeDay();
}
